package net.kelissa.jenetic;

import java.util.Comparator;
import java.util.List;

public interface Organism extends Comparator<Organism>
{

  public abstract Organism clone();

  public abstract void mutate();

  public abstract Organism conceive(Organism other);

  public abstract double fitness();

  public abstract void age();

  // ------------------------------------------
  public abstract int getAge();

  public abstract void setAge(int age);


  public abstract List<Gene> getGenes();

  public abstract void setGenes(List<Gene> genes);

  public Fitner getGenome();

  public void setGenome(Fitner genome);

  public Mutator getMutator();

  public void setMutator(Mutator mutator);

  public Conceiver getConceiver();

  public void setConceiver(Conceiver conceiver);

}